#ifndef TEST3_H_
#define TEST3_H_

#endif /*TEST3_H_*/

template<class Type> class foobar {

};

template<class Type> class QueueItem;
template<class Type> void foo(QueueItem<Type>);

template<class Type> class Queue {
	void bar();
};

template<class Type> class QueueItem {
	friend class foobar <Type>;
	friend void foo<Type>(QueueItem<Type>);
	friend void Queue<Type>::bar();
};

